<html>
<head><meta charset="utf-8"><title>Low hanging fruit? · t-compiler/wg-mir-opt · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/index.html">t-compiler/wg-mir-opt</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html">Low hanging fruit?</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="166493120"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166493120" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166493120">(May 24 2019 at 21:44)</a>:</h4>
<p>Hey hi, I've been following the constant propagation efforts here. Do you think there is some kind of low hanging fruit to work on?</p>



<a name="166493623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166493623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166493623">(May 24 2019 at 21:54)</a>:</h4>
<p>hmm... <span class="user-mention" data-user-id="125250">@Wesley Wiser</span> is munching away at const prop right now. They probably have  a better picture of the situation right now</p>



<a name="166504698"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166504698" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166504698">(May 25 2019 at 02:06)</a>:</h4>
<p>So I'm working on implementing support for the <code>Len</code> operand. Here's the other stuff I'm aware of but not (yet) actively working on: support for <code>Immediate</code>s, adding more tests in <code>src/test/mir-opt/const-prop/</code>, Zoxc mentioned moving const-prop earlier so that we can handle <code>Yield</code> termiantors.</p>



<a name="166504709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166504709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166504709">(May 25 2019 at 02:07)</a>:</h4>
<p>There's probably other stuff but that's all I can think of for now</p>



<a name="166512613"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166512613" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166512613">(May 25 2019 at 06:02)</a>:</h4>
<p>what should happen when an <code>Immediate</code> inner  scalar is undef?</p>



<a name="166515058"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166515058" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166515058">(May 25 2019 at 07:17)</a>:</h4>
<p>We should stop trying to const-prop that value if it's undef. Most of the <code>eval_*</code> functions return <code>Option</code> so you can just <code>return None</code> in that case.</p>
<p><span class="user-mention" data-user-id="124288">@oli</span> Correct me if I'm wrong ^</p>



<a name="166536595"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166536595" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166536595">(May 25 2019 at 17:36)</a>:</h4>
<p>I'd like to take care of adding support for <code>Immediate</code>s then</p>



<a name="166542213"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166542213" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166542213">(May 25 2019 at 20:19)</a>:</h4>
<p>Sorry, I just realized, when I was saying <code>Immediate</code>, what I actually meant was <code>Indirect</code> <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/interpret/enum.Operand.html#variant.Indirect" target="_blank" title="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/interpret/enum.Operand.html#variant.Indirect">https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/interpret/enum.Operand.html#variant.Indirect</a></p>



<a name="166542229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166542229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166542229">(May 25 2019 at 20:19)</a>:</h4>
<p>We already handle <code>Immediate</code></p>



<a name="166542283"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166542283" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166542283">(May 25 2019 at 20:20)</a>:</h4>
<p>The code you need to change is in this function <a href="https://github.com/rust-lang/rust/blob/02f5786a324c40b2d8b2d0df98456e48fb45d30c/src/librustc_mir/transform/const_prop.rs#L517" target="_blank" title="https://github.com/rust-lang/rust/blob/02f5786a324c40b2d8b2d0df98456e48fb45d30c/src/librustc_mir/transform/const_prop.rs#L517">https://github.com/rust-lang/rust/blob/02f5786a324c40b2d8b2d0df98456e48fb45d30c/src/librustc_mir/transform/const_prop.rs#L517</a></p>



<a name="166640530"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166640530" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166640530">(May 27 2019 at 14:11)</a>:</h4>
<p>Great! I'll start reading a little bit and come back with questions :)</p>



<a name="166877852"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166877852" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166877852">(May 30 2019 at 03:40)</a>:</h4>
<p>At the end this should get the <code>MemPlace</code> inside the <code>Indirect</code> and using the <code>Scalar</code> inside it, update <code>rval</code> as in <a href="https://github.com/rust-lang/rust/blob/02f5786a324c40b2d8b2d0df98456e48fb45d30c/src/librustc_mir/transform/const_prop.rs#L528" target="_blank" title="https://github.com/rust-lang/rust/blob/02f5786a324c40b2d8b2d0df98456e48fb45d30c/src/librustc_mir/transform/const_prop.rs#L528">https://github.com/rust-lang/rust/blob/02f5786a324c40b2d8b2d0df98456e48fb45d30c/src/librustc_mir/transform/const_prop.rs#L528</a>, right?</p>



<a name="166886568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166886568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166886568">(May 30 2019 at 07:19)</a>:</h4>
<p>you need to read the scalar from the <code>MemPlace</code> first</p>



<a name="166886569"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166886569" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166886569">(May 30 2019 at 07:19)</a>:</h4>
<p>the <code>MemPlace</code> just refers to memory</p>



<a name="166886575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166886575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166886575">(May 30 2019 at 07:19)</a>:</h4>
<p>so that "Scalar" is actually a pointer into memory</p>



<a name="166886579"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166886579" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166886579">(May 30 2019 at 07:19)</a>:</h4>
<p>may just be an integer in the case of ZSTs</p>



<a name="166886628"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166886628" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166886628">(May 30 2019 at 07:20)</a>:</h4>
<p>because reading a ZST doesn't actually read from memory, so you don't need actual backing memory</p>



<a name="166928496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166928496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166928496">(May 30 2019 at 17:32)</a>:</h4>
<p>And how do I get the real scalar that the memplace's scalar is pointing to?</p>



<a name="166957918"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166957918" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166957918">(May 31 2019 at 00:35)</a>:</h4>
<p>I think you want <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/interpret/struct.InterpretCx.html#method.deref_operand" target="_blank" title="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/interpret/struct.InterpretCx.html#method.deref_operand"><code>deref_operand</code></a></p>



<a name="166958661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/166958661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#166958661">(May 31 2019 at 00:49)</a>:</h4>
<p>great!</p>



<a name="167025921"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167025921" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167025921">(May 31 2019 at 19:23)</a>:</h4>
<p><span class="user-mention" data-user-id="132916">@Christian Poveda</span> Let me know if you have any questions. I have some free time tonight/tomorrow if you need any assistance <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>



<a name="167026289"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167026289" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167026289">(May 31 2019 at 19:27)</a>:</h4>
<p>Are you sure you aren't a magician? I was just creating the branch to start working on this hahahaha</p>



<a name="167028341"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167028341" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167028341">(May 31 2019 at 19:51)</a>:</h4>
<p>Ok more or less i have this</p>



<a name="167028458"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167028458" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167028458">(May 31 2019 at 19:53)</a>:</h4>
<p>to use <code>deref_operand</code> i need an <code>OpTy</code>, which can be obtained using <code>eval_operand</code>, to get the operand I used <code>operand_with_scalar(ptr, value.layout.ty, span)</code> where  <code>ptr</code>  is the scalar inside the <code>MemPlace</code>.</p>



<a name="167028509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167028509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167028509">(May 31 2019 at 19:53)</a>:</h4>
<p>That looks correct to me yeah</p>



<a name="167028620"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167028620" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167028620">(May 31 2019 at 19:54)</a>:</h4>
<p>now the thing is,  <code>deref_operand</code> returns an <code>MPlaceTy</code>, how do I produce an <code>Rvalue</code> from it?</p>



<a name="167029164"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167029164" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167029164">(May 31 2019 at 20:01)</a>:</h4>
<p>So</p>



<a name="167029191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167029191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167029191">(May 31 2019 at 20:01)</a>:</h4>
<p>You need to do something kind of like what we do here <a href="https://github.com/rust-lang/rust/blob/75f464481ed8c924086fc0b9a2d31841bbdbcabd/src/librustc_mir/transform/const_prop.rs#L504" target="_blank" title="https://github.com/rust-lang/rust/blob/75f464481ed8c924086fc0b9a2d31841bbdbcabd/src/librustc_mir/transform/const_prop.rs#L504">https://github.com/rust-lang/rust/blob/75f464481ed8c924086fc0b9a2d31841bbdbcabd/src/librustc_mir/transform/const_prop.rs#L504</a></p>



<a name="167029325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167029325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167029325">(May 31 2019 at 20:03)</a>:</h4>
<p>But instead of <code>ty::Const::from_scalar()</code>, you need to create a <code>Const</code> whose value is <code>ConstValue::ByRef</code> <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc/mir/interpret/enum.ConstValue.html#variant.ByRef" target="_blank" title="https://doc.rust-lang.org/nightly/nightly-rustc/rustc/mir/interpret/enum.ConstValue.html#variant.ByRef">https://doc.rust-lang.org/nightly/nightly-rustc/rustc/mir/interpret/enum.ConstValue.html#variant.ByRef</a></p>



<a name="167029454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167029454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167029454">(May 31 2019 at 20:04)</a>:</h4>
<p>If that makes sense...</p>



<a name="167030019"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167030019" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167030019">(May 31 2019 at 20:11)</a>:</h4>
<blockquote>
<p>If that makes sense...</p>
</blockquote>
<p>what do you mean?</p>



<a name="167030556"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167030556" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167030556">(May 31 2019 at 20:17)</a>:</h4>
<p>Basically you need to add a function similar to <code>operand_from_scalar</code> but for references (<code>operand_from_ref</code> maybe?)</p>



<a name="167030633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167030633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167030633">(May 31 2019 at 20:18)</a>:</h4>
<p>The main difference between these functions is going to be what the <code>ty::Const</code> value is</p>



<a name="167030665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167030665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167030665">(May 31 2019 at 20:18)</a>:</h4>
<p>Here we create a <code>Const</code> which points to a scalar value <a href="https://github.com/rust-lang/rust/blob/75f464481ed8c924086fc0b9a2d31841bbdbcabd/src/librustc_mir/transform/const_prop.rs#L510" target="_blank" title="https://github.com/rust-lang/rust/blob/75f464481ed8c924086fc0b9a2d31841bbdbcabd/src/librustc_mir/transform/const_prop.rs#L510">https://github.com/rust-lang/rust/blob/75f464481ed8c924086fc0b9a2d31841bbdbcabd/src/librustc_mir/transform/const_prop.rs#L510</a></p>



<a name="167030731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167030731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167030731">(May 31 2019 at 20:18)</a>:</h4>
<p>But in the new function, we need to create a <code>Const</code> which points to that <code>MPlace</code></p>



<a name="167030799"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167030799" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167030799">(May 31 2019 at 20:19)</a>:</h4>
<p>There should be a way to get a <code>Pointer</code> and <code>Allocation</code> from the <code>MPlace</code> you have</p>



<a name="167031057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167031057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167031057">(May 31 2019 at 20:22)</a>:</h4>
<p>Ok let me see and I'll come back to you</p>



<a name="167031600"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167031600" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167031600">(May 31 2019 at 20:28)</a>:</h4>
<blockquote>
<p>But in the new function, we need to create a <code>Const</code> which points to that <code>MPlace</code></p>
</blockquote>
<p>When you say that <code>MPlace</code> you mean the <code>MPlaceTy</code>, right?</p>



<a name="167031658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167031658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167031658">(May 31 2019 at 20:29)</a>:</h4>
<p>Yeah</p>



<a name="167031726"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167031726" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167031726">(May 31 2019 at 20:30)</a>:</h4>
<p><code>MPlaceTy</code> is basically just a tuple of <code>(MPlace, TyLayout)</code></p>



<a name="167031739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167031739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167031739">(May 31 2019 at 20:30)</a>:</h4>
<p>ok :P</p>



<a name="167032057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167032057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167032057">(May 31 2019 at 20:34)</a>:</h4>
<p>Ok i can get the <code>Pointer</code> from <code>MPlaceTy::vtable</code> but this return a result, how are errors handled here? should <code>operand_from_ref</code> return a result?</p>



<a name="167032302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167032302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167032302">(May 31 2019 at 20:37)</a>:</h4>
<p>It can probably just return <code>Option&lt;Operand&lt;'tcx&gt;&gt;</code></p>



<a name="167032317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167032317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167032317">(May 31 2019 at 20:37)</a>:</h4>
<p>Then the calling code can use <code>self.operand_from_ref(...)?</code></p>



<a name="167032735"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167032735" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167032735">(May 31 2019 at 20:42)</a>:</h4>
<p>mmm... but  <code>replace_with_const</code> returns <code>()</code></p>



<a name="167032945"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167032945" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167032945">(May 31 2019 at 20:45)</a>:</h4>
<p>oh, good point</p>



<a name="167032979"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167032979" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167032979">(May 31 2019 at 20:45)</a>:</h4>
<blockquote>
<p>to use <code>deref_operand</code> i need an <code>OpTy</code>, which can be obtained using <code>eval_operand</code>, to get the operand I used <code>operand_with_scalar(ptr, value.layout.ty, span)</code> where  <code>ptr</code>  is the scalar inside the <code>MemPlace</code>.</p>
</blockquote>
<p>also to call <code>eval_operand</code> in need the <code>source_info</code></p>



<a name="167032982"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167032982" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167032982">(May 31 2019 at 20:45)</a>:</h4>
<p>You can do <code>if let Some(...) = self.operand_from_ref(...)</code> then</p>



<a name="167033005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167033005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167033005">(May 31 2019 at 20:45)</a>:</h4>
<p>If we get <code>None</code> that's not an error, it just means we can't const propagate</p>



<a name="167033222"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167033222" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167033222">(May 31 2019 at 20:48)</a>:</h4>
<p>oh damn and <code>vtable</code> is private, i cannot use it</p>



<a name="167033317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167033317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167033317">(May 31 2019 at 20:49)</a>:</h4>
<p>Do you need <code>vtable</code>?</p>



<a name="167033402"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167033402" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167033402">(May 31 2019 at 20:50)</a>:</h4>
<p>well, I used to get the <code>Pointer</code> from the <code>MPlaceTy</code></p>



<a name="167033518"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167033518" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167033518">(May 31 2019 at 20:52)</a>:</h4>
<p>Hmm... I'm not sure I'm following</p>



<a name="167033525"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167033525" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167033525">(May 31 2019 at 20:52)</a>:</h4>
<p>Can you explain a bit more?</p>



<a name="167033546"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167033546" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167033546">(May 31 2019 at 20:52)</a>:</h4>
<p>yeah this is messy</p>



<a name="167033549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167033549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167033549">(May 31 2019 at 20:52)</a>:</h4>
<p>let me see</p>



<a name="167033589"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167033589" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167033589">(May 31 2019 at 20:53)</a>:</h4>
<p>Oh do you mean <code>MPlaceTy::vtable()</code>?</p>



<a name="167033593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167033593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167033593">(May 31 2019 at 20:53)</a>:</h4>
<p>yep</p>



<a name="167033600"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167033600" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167033600">(May 31 2019 at 20:53)</a>:</h4>
<p>I don't think that's what you want</p>



<a name="167033658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167033658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167033658">(May 31 2019 at 20:54)</a>:</h4>
<p>should i just call <code>to_ptr</code>?</p>



<a name="167033661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167033661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167033661">(May 31 2019 at 20:54)</a>:</h4>
<p>That (<code>vtable()</code>) will give you a pointer to the object's vtable (if that's a valid operation for the kind of reference you have)</p>



<a name="167033672"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/167033672" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#167033672">(May 31 2019 at 20:54)</a>:</h4>
<p>Yeah, I think  <code>to_ptr</code> is what you want</p>



<a name="180287313"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/180287313" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#180287313">(Nov 09 2019 at 00:41)</a>:</h4>
<p>Not sure if it counts as a low hanging fruit, but <a href="https://github.com/rust-lang/rust/issues/66234" target="_blank" title="https://github.com/rust-lang/rust/issues/66234">https://github.com/rust-lang/rust/issues/66234</a> at least has parts that shouldn't be enormously hard to implement</p>



<a name="180299633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/180299633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#180299633">(Nov 09 2019 at 06:41)</a>:</h4>
<p>count me in :)</p>



<a name="180405233"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/Low%20hanging%20fruit%3F/near/180405233" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/Low.20hanging.20fruit.3F.html#180405233">(Nov 11 2019 at 08:14)</a>:</h4>
<p>Filed <a href="https://github.com/rust-lang/rust/pull/66282" target="_blank" title="https://github.com/rust-lang/rust/pull/66282">https://github.com/rust-lang/rust/pull/66282</a> <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>